package com.small.os.minio.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.common.basis.entity.*;
import com.small.os.minio.enums.IsPublishEnum;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 文件分享
 *
 * @author wangguochao
 * @since 2020-10-20
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class AqShare extends BaseEntity  {

    /**
     * 分享序号，以后用来存连接
     */
    private String uuid;
    /**
     * 介绍
     */
    @Length(max = 5120, message = "内容《富文本》")
    private String introduction;
    /**
     * 标题
     */
    @NotNull
    private String title;
    /**
     * 类型
     */
    @NotNull
    private String shareType;


    /**
     * 文件数
     */
    private Integer numberOfFiles;

    /**
     * 分享时常
     */
    private Integer expiry;
    /**
     * 发布状态
     */
    private IsPublishEnum publish;

    /**
     * 分享内容集合
     */
    @TableField(exist = false)
    @Size(min = 1)
    private List<AqShareInfo> aqShareInfoList;
    /**
     * 永久有效
     */
    private Boolean permanent;
    /**
     * 收藏是否本人
     */
    @TableField(exist = false)
    private boolean favorites;
    /**
     * 收藏是否本人
     */
    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private LocalDateTime favoritesData;
}
